思路一:
一看题就知道是模拟题,直接模拟每层填土的过程。
如图所示,一共需填9次土,可以直接用for语句循环判断需填土区块的数量。
代码实现:
1 |
|
可惜这种方法只能拿80分的点,其他TLE。
思路2:
画图后发现,相邻的两部分所需填土的步数等于较高一部分的深度值(图中即3步)
若部分1深度>部分2深度,就有步数=部分1深度
若部分2深度>部分1深度,就有步数=部分2深度
所以不难推出(部分0深度=0):
当当前部分深度<前一部分深度,总步数不变
当当前部分深度>前一部分深度,总步数=总步数+当前部分深度-前一部分深度
代码实现:
1 |
|
经过测试,此思路可以轻松拿下所有点,仅耗时33ms